const express = require('express');
const shoppingCart = require('../db/models/shoppingCartModel');
// const goods = require('../db/models/shoppingCartModel')
const router = express.Router();

/**
 * @api {post} /shoppingCart/increase 添加商品
 * @apiGroup shoppingCart
 *   
 * @apiParam {Number} id 商品id
 * @apiParam {String} title 商品标题
 * @apiParam {String} imgurl 商品图片地址
 * @apiParam {String} price 商品价格
 * @apiParam {String} desc 商品描述
 * @apiParam {String} type 商品类型
 * @apiParam {String} style 商品类型
 * @apiParam {String} num 商品数量
 * @apiParam {String} mobile 商品数量
 *
 * @apiSuccessExample 返回数据示例:
 * {
 *     "err": 0,
 *     "msg": "添加成功"
 * }
 */
// 给购物车中添加数据
router.post('/increase', (req, res) => {
        let { id, title, imgurl, price, desc, type, style, mobile } = req.body
            // 对数据进行校验（空值，格式，长度等）
        if (!id || !title || !imgurl || !price || !desc || !type || !style || !mobile) {
            return res.send({ err: -1, msg: '参数错误' })
        }

        // 判断数据是否已有该数据
        shoppingCart.find({ id, mobile })
            .then((data) => {
                if (data.length > 0) {
                    // console.log(data);
                    // console.log(data.length);
                    num = ++data[0].num;
                    // console.log(num);
                    return shoppingCart.updateOne({ id, mobile }, { $set: { id, title, imgurl, price, desc, type, style, num, mobile } })
                } else {
                    num = 1;
                    return shoppingCart.insertMany({ id, title, imgurl, price, desc, type, style, num, mobile })
                }
            })
            .then((data) => {
                res.send({ err: 0, msg: '添加成功' })
            })
            .catch((err) => {
                res.send({ err: -3, msg: '添加失败' })
            })

    })
    // 获取购物车中的数据
router.get('/getshoppingCart', (req, res) => {

        shoppingCart.find()
            .then((data) => {
                if (data.length > 0) {
                    res.send({ err: 1, msg: '访问成功', data: data })
                } else {
                    res.send({ err: 0, msg: '访问失败', data: [] })
                }
            })

        // res.send('add ok')
    })
    // 把新更新的页面中的数据传到数据库中
router.post('/update', (req, res) => {
        req.body.forEach((el) => {
            let { mobile, id } = el;
            shoppingCart.deleteMany({ mobile, id }).then((data) => {}).catch((err) => {});
        })
        req.body.forEach(ele => {
            let { id, title, imgurl, price, desc, type, style, num, mobile } = ele;
            console.log(ele);
            shoppingCart.insertMany({ id, title, imgurl, price, desc, type, style, num, mobile }).then(data => {
                res.send({ err: 0, msg: "数据更新成功！" });
            }).catch(err => {
                res.send({ err: 1, msg: "数据更新失败！" });
            })
        });


    })
    // 删除匹配Id和相应用户的购物车商品
    // shoppingCart.deleteMany({ mobile, id }).then((data) => {
    //     // 删除完之后再把新的添加进去,这里是一条一条添加进去
    //     req.body.forEach(ele => {
    //         let { id, title, imgurl, price, desc, type, style, num, mobile } = ele;
    //         console.log(ele);
    //         shoppingCart.insertMany({ id, title, imgurl, price, desc, type, style, num, mobile })
    //     });
    // }


// 删除对应的一条数据
router.post("/remove", (req, res) => {
    let { id, mobile } = req.body;
    console.log(req.body);
    shoppingCart.deleteOne({ id, mobile }).then((data) => {
        res.send({ err: 0, msg: "删除成功" })
    }).catch((err) => {
        res.send({ err: 1, msg: "删除失败" })
    })
})



module.exports = router;